HTML_QuickForm[2] - alternativen

hallo,

kennt jemand aktiv entwickelte Alternativen zu HTML_QuickForm(2)?

bye,
-michael
Michael Ablassmeier [ Mo, 21 Januar 2008 17:57 ] [ ID #1914809 ]

Re: HTML_QuickForm[2] - alternativen

Michael Ablassmeier wrote:
> kennt jemand aktiv entwickelte Alternativen zu HTML_QuickForm(2)?

xmlform? Gibt nur leider keine Webseite, Kontakt nur über den Autor
direkt möglich. Ist zuviel beschäftigt der Gute...

Gruß
Frank B.

--
"Unterwerfung ist die einzige bequeme Antwort auf Autorität"
Rainer Hinz [ Mo, 21 Januar 2008 20:05 ] [ ID #1914810 ]

Re: HTML_QuickForm[2] - alternativen

Michael Ablassmeier schrieb:
> hallo,
>
> kennt jemand aktiv entwickelte Alternativen zu HTML_QuickForm(2)?

Ja, ich habe was ähnliches geschrieben, allerdings sehr viel modularer -
die Elemente sind nämlich einzelne Objekte, die dem Äquivalent von
HTML_QuickForm übergeben werden. Daher kann man sich recht schnell auch
die berüchtigte Ausnahme dazuprogrammieren.

Falls Interesse besteht...

--
Mein Zeugs:
http://www.hadanite-marasek.de/classes.php
http://www.objektivsuche.de/
Ansonsten:
http://www.php-faq.de/q/q-newsgroup-wie-helfen.html
Hadanite Marasek [ Mo, 21 Januar 2008 20:28 ] [ ID #1914811 ]

Re: HTML_QuickForm[2] - alternativen

Am 21. Januar 2008 schrieb Hadanite Marasek:

> Michael Ablassmeier schrieb:
>> kennt jemand aktiv entwickelte Alternativen zu HTML_QuickForm(2)?
>
> Ja, ich habe was ähnliches geschrieben, allerdings sehr viel modularer -
> die Elemente sind nämlich einzelne Objekte, die dem Äquivalent von
> HTML_QuickForm übergeben werden. Daher kann man sich recht schnell auch
> die berüchtigte Ausnahme dazuprogrammieren.

Dann erklär doch bitte mal, was die Elemente in HTML_QuickForm sind.
Sind das deiner Meinung nach keine Objekte?

Gruß
Mark

--
Franz Beckenbauer: "Die Schweden sind keine Holländer - das hat man ganz
genau gesehen."
Mark Wiesemann [ Mo, 21 Januar 2008 22:16 ] [ ID #1915652 ]

Re: HTML_QuickForm[2] - alternativen

Michael Ablassmeier schrieb:
> kennt jemand aktiv entwickelte Alternativen zu HTML_QuickForm(2)?

Eigenentwicklung. Die Elemente sind per neuen Klassen erweiterbar, sowie
Validatoren zur Plausibilitätsprüfung und Renderer zur Gestaltung der
Ausgabe. Ist im Moment das Flexibelste für meine Bedürfnisse.

--
Mit freundlichen Grüßen,
Christoph Herrmann

http://dragonprojects.de/
Christoph Herrmann [ Mo, 21 Januar 2008 23:12 ] [ ID #1916438 ]

Re: HTML_QuickForm[2] - alternativen

> Dann erklär doch bitte mal, was die Elemente in HTML_QuickForm sind.
> Sind das deiner Meinung nach keine Objekte?

Pear::HTML_Quickform:

$form = new HTML_Quickform();
$form->addElement("text", "vorname");

Marasek::Bigform:

$form = new Bigform();
$form->addElement(new FormText("vorname"));

Das meine ich. Solange Du Dich an die Regeln hältst, kannst Du recht
schnell Deine persönliche Ausnahme (FormTextMitBlumen) schreiben.

--
Mein Zeugs:
http://www.hadanite-marasek.de/classes.php
http://www.objektivsuche.de/
Ansonsten:
http://www.php-faq.de/q/q-newsgroup-wie-helfen.html
Hadanite Marasek [ Mo, 21 Januar 2008 23:10 ] [ ID #1916439 ]

Re: HTML_QuickForm[2] - alternativen

Am 21. Januar 2008 schrieb Hadanite Marasek:

>> Dann erklär doch bitte mal, was die Elemente in HTML_QuickForm sind.
>> Sind das deiner Meinung nach keine Objekte?
>
> Pear::HTML_Quickform:
>
> $form = new HTML_Quickform();
> $form->addElement("text", "vorname");
>
> Marasek::Bigform:
>
> $form = new Bigform();
> $form->addElement(new FormText("vorname"));
>
> Das meine ich. Solange Du Dich an die Regeln hältst, kannst Du recht
> schnell Deine persönliche Ausnahme (FormTextMitBlumen) schreiben.

Und was genau hindert dich, folgendes in QF zu schreiben?

$form = new HTML_QuickForm();
$form->addElement(new HTML_QuickForm_text("vorname"));

Abgesehen vom längeren Namen der Klasse sehe ich keinen Unterschied.

Gruß
Mark

--
Heribert Faßbender: "Ich geb jetzt mal ab zu Waldi und Hansi - wer
ist dran? Oder Wonti und Töppi - ich weiß es gar nicht."
Mark Wiesemann [ Mo, 21 Januar 2008 23:18 ] [ ID #1916440 ]

Re: HTML_QuickForm[2] - alternativen

> Und was genau hindert dich, folgendes in QF zu schreiben?
>
> $form = new HTML_QuickForm();
> $form->addElement(new HTML_QuickForm_text("vorname"));
>
> Abgesehen vom längeren Namen der Klasse sehe ich keinen Unterschied.

Ahja gut, war für mich im ersten Überflug aus der Doku/ergoogelten
Beispielen nicht ersichtlich.

Scheint so, als wären Quickform/Bigform dann recht ähnlich, ausser halt,
dass ich die erweiterten Funktionen von PHP5 nutze.
--
Mein Zeugs:
http://www.hadanite-marasek.de/classes.php
http://www.objektivsuche.de/
Ansonsten:
http://www.php-faq.de/q/q-newsgroup-wie-helfen.html
Hadanite Marasek [ Mo, 21 Januar 2008 23:40 ] [ ID #1916441 ]

Re: HTML_QuickForm[2] - alternativen

Christoph Herrmann wrote:
> Michael Ablassmeier schrieb:
>> kennt jemand aktiv entwickelte Alternativen zu HTML_QuickForm(2)?
>
> Eigenentwicklung. Die Elemente sind per neuen Klassen erweiterbar, sowi=
e
> Validatoren zur Plausibilitätsprüfung und Renderer zur Gestaltung d=
er
> Ausgabe. Ist im Moment das Flexibelste für meine Bedürfnisse.
>

Kannst du mir mal zeigen, wie groß so ein typisches Formular im
Quelltext ist?

Danke
Frank


--
"Unterwerfung ist die einzige bequeme Antwort auf Autorität"
Rainer Hinz [ Di, 22 Januar 2008 03:11 ] [ ID #1916442 ]

Re: HTML_QuickForm[2] - alternativen

Frank Burmeister schrieb:
> Kannst du mir mal zeigen, wie groß so ein typisches Formular im
> Quelltext ist?

Hier ein Beispiel anhand eines Logins. Wenn allein die Kürze zählen soll
natürlich die Kommentare und Leerzeilen wegdenken. :) Der Quellcode wird
natürlich größer, wenn mehr Elemente definiert werden, aber das sollte
klar sein.

Neue eigene Elemente können als Klassen angelegt werden die von
"Element" abgeleitet sind. Neue Validatoren sind von "Validator"
abgeleitet und neue Actions implementieren die Schnittstelle
"FormularAction" und haben dann eine Methode "action(Formular
$formular)" und können dann Exceptions werfen, falls Daten bei weiteren
Prüfungen (falscher Login zum Beispiel) ungültig sind, deren Meldungen
dann in der Sprache des Benutzers automatisch ins Formular übernommen
werden. Falls ein Formular mehrfach gebraucht wird kann man die Elemente
natürlich auch in einer abgeleiteten Klasse definieren.

<?php
//Klar, erstmal neues Objekt vom Formular, 'login' ist hier
//der eindeutige Name -> auch für die Sprachunterstuetzung für
//die Beschriftungen der Elemente

$formular = new Formular('login');

//Jedes Element hinzufügen, dabei muss jedes Element einen
//Validator besitzen, die meisten Elemente haben einen
//Validator fest, Textfield zum Beispiel ist frei

$formular->addElement(new TextfieldElement('email', new
EmailValidator()));
$formular->addElement(new PasswordElement('password'));

//Erste Moeglichkeit die Daten zu verarbeiten ist sich diese
//selbst zu holen, wenn das Formular gesendet wurde und
//die Daten validiert sind

if($formular->isValid())
{
//Alle Daten als Assotiatives Array holen

$data = $formular->getDatas();
print $data['email'];
print $data['password'];

//Oder die Daten einzeln aus dem Formular holen

print $formular->getData('email');
print $formular->getData('password');

} else
{
//Formular anzeigen, wenn die Daten ungueltig waren
//oder das Formular noch nicht bestaetigt wurde

$renderer = new TableFormularRenderer();
$renderer->render($formular, $html->getBody());
}

//Alternative Moeglichkeit waeren Actionobjekte, deren
//Methode das Formular übergeben bekommt wenn es abgesendet
//wurde, vor allem gut wenn noch weitere Prüfungen der
//Variablen vorgenommen werden müssen oder die Verarbeitung
//getrennt von der Definition sein soll

class LoginAction
{
public function __construct() {}

public function action(Formular $formular)
{
...
}
}

$formular->addAction(new LoginAction());
?>

--
Mit freundlichen Grüßen,
Christoph Herrmann

http://dragonprojects.de/
Christoph Herrmann [ Di, 22 Januar 2008 08:51 ] [ ID #1916444 ]

Re: HTML_QuickForm[2] - alternativen

Christoph Herrmann schrieb:
> $formular->addAction(new LoginAction());

PS: Das "addAction()" muss natürlich nach den Elementdefinition und vor
der Ausgabe stehen, hab ich gerade auf die Schneller vergessen. :)

--
Mit freundlichen Grüßen,
Christoph Herrmann

http://dragonprojects.de/
Christoph Herrmann [ Di, 22 Januar 2008 08:54 ] [ ID #1916445 ]

Re: HTML_QuickForm[2] - alternativen

On 21 Jan., 17:57, Michael Ablassmeier <a... [at] grinser.de> wrote:
> hallo,
>
> kennt jemand aktiv entwickelte Alternativen zu HTML_QuickForm(2)?
>
> bye,
> -michael

Den Formwizard vlt noch (formwizard.andreas-demmer.de), die usp ist
eindeutig das ulkige Logo ;). Ziemlich einfach in der Handhabe,
generiert dafür aber auch kompletten HTML-Code, den man nicht ohne
Weiteres anpassen kann (also es geht bestimmt durch geschickte
Erweiterung der einzelnen Klassen, ist halt wieder mit Arbeit
verbunden). Ich habe ihn seinerzeit mal benutzt, mir aber dann auch
was eigenes geschrieben. Irgendwie ist man dann doch flexibler
unterwegs, da man die Anwendung auf seine speziellen Bedürfnisse und
Anforderungen zuschneiden kann und keinen Overhead an
Alternativfeatures mitschleppt.
johannes.heinen [ Di, 22 Januar 2008 09:35 ] [ ID #1916448 ]

Re: HTML_QuickForm[2] - alternativen

Christoph Herrmann wrote:
> Frank Burmeister schrieb:

> Hier ein Beispiel anhand eines Logins. Wenn allein die Kürze zählen=
soll
> natürlich die Kommentare und Leerzeilen wegdenken. :) Der Quellcode w=
ird
> natürlich größer, wenn mehr Elemente definiert werden, aber das s=
ollte
> klar sein.

Ja, denke ich mir.

> Neue eigene Elemente können als Klassen angelegt werden die von
> "Element" abgeleitet sind. Neue Validatoren sind von "Validator"
> abgeleitet und neue Actions implementieren die Schnittstelle
> "FormularAction" und haben dann eine Methode "action(Formular
> $formular)" und können dann Exceptions werfen, falls Daten bei weiter=
en
> Prüfungen (falscher Login zum Beispiel) ungültig sind, deren Meldun=
gen
> dann in der Sprache des Benutzers automatisch ins Formular übernommen=

> werden. Falls ein Formular mehrfach gebraucht wird kann man die Element=
e
> natürlich auch in einer abgeleiteten Klasse definieren.

Ja, objektorientierte Programmierung macht schon Sinn, wüßte gar nich=
t
mehr, wie ich manche Projekte ohne abwickeln könnte.

> <?php
> $formular =3D new Formular('login');
> $formular->addElement(new TextfieldElement('email', new
> EmailValidator()));
> $formular->addElement(new PasswordElement('password'));

Und wenn du jetzt bestimmte Parameter noch ändern willst geht hier die =

Parametrierung weiter? Wo definierst du die Beschriftungsfelder? Wo
wären zusätzliche Javascript Handler anzubringen?

Ist das Formular in Tabellen organisiert oder hast du eine
zugrundegelegte CSS?

Gruß
Frank B.
--
"Unterwerfung ist die einzige bequeme Antwort auf Autorität"
Rainer Hinz [ Mi, 23 Januar 2008 10:42 ] [ ID #1916460 ]

Re: HTML_QuickForm[2] - alternativen

Frank Burmeister schrieb:
> Ja, objektorientierte Programmierung macht schon Sinn, wüßte gar nicht
> mehr, wie ich manche Projekte ohne abwickeln könnte.

Jep, wenn man erstmal damit angefangen hat gibt es immer mehr Dinge, die
man elegant ohne OOP nicht mehr lösen kann/will. :)

>> <?php
>> $formular = new Formular('login');
>> $formular->addElement(new TextfieldElement('email', new
>> EmailValidator()));
>> $formular->addElement(new PasswordElement('password'));
>
> Und wenn du jetzt bestimmte Parameter noch ändern willst geht hier die
> Parametrierung weiter? Wo definierst du die Beschriftungsfelder? Wo
> wären zusätzliche Javascript Handler anzubringen?

Parameter:
Nein, der Konstruktor beinhaltet nur die Pflichtfelder weil ich keine 20
Default Parameter haben will. Alle optionalen Parameter werden über
Setter Methoden gesetzt, dafür muss man halt das Element in einer
Variable speichern. Sehr wichtiger Parameter, die man oft setzen muss
(mir fallen gerade keine ein) könnte man in den Konstruktor übernehmen,
allerdings nicht alle.

Beschriftung:
Jedes Element bekommt ein Label als Beschriftung, der Schriftzug wird
aus der Sprachunterstützung genommen (damit man auch die richtige
Sprache bekommt als Benutzer). Woher diese kommen, aus der Datenbank
oder aus XML Dateien oder sonst was interessiert das Formular nicht,
darum kümmert sich allein die Sprachunterstützung. Natürlich ist diese
auch flexible, also wenn man Sprachvariablen aus der Datenbank haben
will nimmt man einfach anderen Loader oder definiert sich selbst einen.

JavaScript:
Gilt das gleiche wie Parameter. Bisher hat mein Framework nichts mit
JavaScript am Hut, aber ich gehe davon aus dass es in der Richtung
später noch hinzukommt, denke aber dass ich erstmal jemand braucht der
mir mit JavaScript hilft bzw. erstmal selbst richtig lernen (kann nur
das Nötigste):

$handler = new JavaScriptHandler('onclick', 'alert("...");');
$element->addHandler($handler);

Dann kann man komplexere Handler selbst definieren und in jedem
beliebigen Formular verwenden.

> Ist das Formular in Tabellen organisiert oder hast du eine
> zugrundegelegte CSS?

Jain. Die Klasse Formular wie oben zu sehen definiert ja nur was im
Formular enthalten ist. In welcher Form und Struktur es ausgegeben wird
bestimmen einzig und allein die FormularRenderer. Ich werde einen am
Anfang mitliefern, der das Formular in einer Tabelle ausgibt mit zwei
Spalten (Label/Element), aber wer andere Formen haben will macht sich
einfach einen eigenen FormularRenderer.

--
Mit freundlichen Grüßen,
Christoph Herrmann

http://dragonprojects.de/
Christoph Herrmann [ Mi, 23 Januar 2008 10:19 ] [ ID #1916461 ]
PHP » de.comp.lang.php.misc » HTML_QuickForm[2] - alternativen

Vorheriges Thema: imagefilter( [Sättigung] )
Nächstes Thema: Leerzeichen bei echo-Befehl werden ignoriert